package com.tz.service;

import com.tz.entity.RightControl;
import com.tz.entity.Role;
import com.tz.util.PageBean;

import java.util.List;

/**
 * 用于角色权限管理
 *
 * @author Alex
 * @date 17-12-29
 */
public interface RoleService {
    /**
     * 分页显示所有的角色
     *
     * @param PageNow
     * @param PageSize
     * @return 本页角色
     */
    PageBean<Role> queryRolesByPage(Integer pageNow, Integer pageSize);

    /**
     * 批量删除角色
     * 需注意角色是否在使用
     *
     * @param ids
     */
    void removeBatchRoles(List<Long> ids);

    /**
     * 修改角色权限
     * 要先删除已有权限
     *
     * @param id      角色id
     * @param rightid 权限(RightControl)对应的id
     */
    void changeRight(Long id, List<Long> rightIds);


    /**
     * 添加角色
     *
     * @param role 新角色
     *             默认无权限
     */
    void addRole(Role role);
    /**
     * 检查角色名
     *
     * @param role 新角色
     *             默认无权限
     */
    Integer checkRoleName(String roleName);

    /**
     * 通过角色id获取对应的权限
     *
     * @param roleId 角色id
     * @return 改id拥有的权限
     */
    List<RightControl> getRole(Long roleId);
    /**
     * 获取所有权限用于显示
     *
     * @return 所有的权限
     */
    List<RightControl> getAllRights();
    /**
     * 用于下拉列表
     *
     *
     * @return 所有的角色
     */
    List<Role> getAllRoles();

}
